<?php
/**
 * @author Nguyen Thanh Hai
 * @copyright 2009
 */
class ThoitietsController extends AppController {

	var $name = 'Thoitiets';
	var $helpers = array('Html', 'Form');
	var $uses = array('Canbo', 'User', 'Trambvtv', 'Thoitiet', 'ChicucBvtv', 'Thongso', 'TsTt');
	var $paginate = array('limit' =>10, 'page' => 1,'order' =>array('Thoitiet.id'=>'desc'));
	//doan code de xet quyen
	function beforeFilter(){
        parent::beforeFilter();
        $curUser = $this->Auth->user();
        if($curUser['User']['ROLE']!='admin' && $curUser['User']['ROLE']!='user'){
            $this->Session->setFlash('Bạn phải đăng nhập để sử dụng chức năng này');
            $this->redirect('/controls');
        }
    }

	function index() {
		
		$this->User->recursive = 1;
		$cb = $this->User->find('first',array('fields'=>array('Canbo.id','Canbo.HOTEN'),'conditions'=>array('User.id'=>$this->Auth->user('id'))));
		$this->set('cb',$cb);

		$this->Thoitiet->recursive = 0;
		if($this->Auth->user('ROLE')=='admin'){
			$this->set('thoitiets', $this->paginate('Thoitiet'));
		}else{
			$this->set('thoitiets', $this->paginate('Thoitiet',array('Thoitiet.canbo_id'=>$cb['Canbo']['id'])));
		}
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash('Phiếu ghi nhận hoặc dự đoán không hợp lệ');
			$this->redirect(array('action'=>'index'));
		}
		$this->User->recursive = 1;
		$cb = $this->User->find('first',array('fields'=>array('Canbo.id','Canbo.HOTEN'),'conditions'=>array('User.id'=>$this->Auth->user('id'))));
		
		$this->Canbo->recursive = 1;

		$this->Thongso->recursive = 1;
		$thongsos = $this->Thongso->find('all');

		$this->set('thoitiet', $this->Thoitiet->read(null, $id));

		$phieu = $this->Thoitiet->find('first',array('conditions'=>array('Thoitiet.id'=>$id)));
		$this->set(compact('cb', 'thongsos', 'phieu'));
	}

	function add($id=null) {

		if (!empty($this->data)) {
			$this->Thoitiet->create();
			if ($this->Thoitiet->save($this->data)) {
				$this->Session->setFlash(__('Thông tin bạn nhập đã được lưu', true));
				$idtemp1 = $this->Thoitiet->id;//luu id moi duoc tao
				$this->redirect(array('action'=>'nhapthongtin',$idtemp1));
			} else {
				$this->Session->setFlash(__('Thông tin chưa được lưu. Bạn vui lòng nhập lại.', true));
			}
		}
		$tinhs = $this->Thoitiet->Tinh->find('list',array('fields'=>array('Tinh.id','TEN_T')));
        $this->set(compact('id'));
		$parentThoitiets = $this->Thoitiet->ParentThoitiet->find('list',array('conditions'=>array('ParentThoitiet.id'=>$id)));
		$canbos = $this->Thoitiet->Canbo->find('list',array('fields'=>array('Canbo.id','HOTEN')));

		$this->Thoitiet->recursive = 1;
		$this->set(compact('parentThoitiets', 'canbos', 'id', 'tinhs', 'idtemp1'));
	}
	
	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid Thoitiet', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) {
			if ($this->Thoitiet->save($this->data)) {
				$this->Session->setFlash(__('Thông tin bạn nhập đã được lưu', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('Thông tin chưa được lưu. Bạn vui lòng nhập lại.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Thoitiet->read(null, $id);
		}
		$tinhs = $this->Thoitiet->Tinh->find('list',array('fields'=>array('Tinh.id','TEN_T')));
		$parentThoitiets = $this->Thoitiet->ParentThoitiet->find('list');
		$canbos = $this->Thoitiet->Canbo->find('list');
		$this->set(compact('parentThoitiets','canbos','tinhs'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for Thoitiet', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Thoitiet->del($id)) {
			$this->Session->setFlash(__('Đã XÓA xong', true));
			$this->redirect(array('action'=>'index'));
		}
	}
		
	function nhapthongtin($id = null){
		if (!$id) {
			$this->Session->setFlash('Phiếu ghi nhận hoặc dự đoán thời tiết không hợp lệ');
			$this->redirect(array('action'=>'index'));
		}
		
		if (!empty($this->data)){
			//print_r($this->data);
			$count = count($this->data['mathongso']);//dem so dong 
			if($count == 0){
				$this->Session->setFlash('Chưa có thông số nào trong phiếu ghi nhận dự đoán- thời tiết');
				$this->redirect(array('action'=>'index'));
			}else

			 if($count == 1){
				if(isset($this->data['maketqua']))
			//trong truong hop sua thi can toi (1)
				$record['TsTt']['id'] = $this->data['maketqua'][0];// (1)
				//(2) (3) la cac thuoc tinh khoa ngoai
				$record['Thoitiet']['id'] = $id; //(2)
				$record['Thongso']['id'] = $this->data['mathongso'][0]; //(3)
				$record['TsTt']['T_SO'] = $this->data['ketqua'][0];
		
				$this->TsTt->create();
				
				if(!$this->TsTt->saveAll($record)){
					$this->Session->setFlash('Có lỗi xảy ra. Lưu không thành công');
				}
				
			}

			else{
				for($i = 0; $i < $count; $i++){
					if(isset($this->data['maketqua']))
						$record['TsTt']['id'] = $this->data['maketqua'][$i];
					$record['Thoitiet']['id'] = $id;
					//KHOA NGOAI CUA DOI TUONG
					$record['Thongso']['id'] = $this->data['mathongso'][$i];
					$record['TsTt']['T_SO'] = $this->data['ketqua'][$i];
		
					//print_r($record);
					$this->TsTt->create();
					if(!$this->TsTt->saveAll($record)){
						$this->Session->setFlash('Có lỗi xảy ra. Lưu không thành công.');
					}
				}
			}
			
			$this->Session->setFlash('Lưu thành công.');			
			$this->redirect(array('action'=>'index'));
		}else{ //trong truong hop du lieu bi rong (empty)
			$this->User->recursive = 1;
			//lay cai dau tien theo dieu kien Cb dang nhap
			$cb = $this->User->find('first',array('fields'=>array('Canbo.id','Canbo.HOTEN'),'conditions'=>array('User.id'=>$this->Auth->user('id'))));
			
			$this->Canbo->recursive = 1;
			$tram = $this->Canbo->find('first', array('fields'=>array('Trambvtv.TEN_TR', 'Trambvtv.id'), 'conditions'=>array('Canbo.id'=>$cb['Canbo']['id'])));
			
			$this->Trambvtv->recursive = 1;
			$chicuc = $this->Trambvtv->find('first', array('fields'=>array('ChicucBvtv.TEN_CC', 'ChicucBvtv.id'), 'conditions'=>array('Trambvtv.id'=>$tram['Trambvtv']['id'])));
			
			$this->Thongso->recursive = -1;
			$thongsos = $this->Thongso->find('all', array('order'=>'Thongso.id'));
			
			$this->TsTt->recursive = -1;
			$tstts = $this->TsTt->find('all', array('conditions'=>array('TsTt.thoitiet_id'=>$id), 'order'=>'TsTt.thongso_id'));

			$this->set('thoitiet', $this->Thoitiet->read(null, $id));			

			$this->set(compact('cb', 'tram', 'chicuc', 'thongsos', 'phieu', 'tstts'));
		}
	}

}
?>